package com.example.zjsr.service;



import com.example.zjsr.common.ServerResponse;
import com.example.zjsr.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface UserService {
    public ServerResponse<Object> importUsers(List<Object> users);

    ServerResponse<String> register(UserVo userVo);

    ServerResponse<String> generateCheckCode(String email);

    ServerResponse<String> updatePassword(UserVo userVo);

    ServerResponse<String> forgetSendEmailCode(String email);

    List<User> findAll(User user);

    ServerResponse<String> insertBackUser(UserVo userVo);



    ServerResponse<String> deleteByUserId(Integer id);

    ServerResponse<String> deleteByUserId2(Integer id);

    ServerResponse<String> updateBackendUser(User user);

    List<User> findByParams(User user);

    ServerResponse<Integer> accountUser();

    ServerResponse<User> findById(Integer id);

    int insertIlabUser(UserVo userVo);

    User selectUserByUserId(Integer id);

    User selectUserByLoginName(String loginName);

    ServerResponse getFruitField();

    void expertLogin(User expertLoginUser);

    void deleteUser();

    ServerResponse addPlatform(Platform platform);

    ServerResponse deletePlatform(Integer platformId);

    ServerResponse updatePlatform(Platform platform);

    ServerResponse getPlatform(@Param("platformId") Integer platformId);

    ServerResponse addBroadcast(Broadcast broadcast,Integer uId);

    ServerResponse getBroadcast(Integer id);

    ServerResponse addHeadline(String headlineTitle);

    ServerResponse getHeadline();

    ServerResponse updateHeadline(Headline headline);

    ServerResponse addTopic(Topic topic);

    ServerResponse updateTopic(Topic topic,Integer choose);

    ServerResponse getTopic(Integer headlineId);

    ServerResponse addAnswer(List<Answer> answerList);

    ServerResponse updateAnswer(Answer answer);

    ServerResponse getAnswer(Integer topicId);

    ServerResponse getAllAnswer(Integer headlineId);

    ServerResponse deleteAnswers(Integer answerId);

    ServerResponse deleteTopic(Integer topicId);

    ServerResponse deleteHeadline(Integer headlineId);

    ServerResponse getOperateInfo(Integer pageNum, Integer pageSize);

    List<DownOperate> downLoadOperateInfo();

    ServerResponse<String> updateMD5Password();

    ServerResponse getScore(Integer pageNum, Integer pageSize,User user);

    ServerResponse getScoreById(Integer scoreId);

    ServerResponse deleteScoreById(Integer scoreId);

    ServerResponse readScoreById(Integer scoreId, String teacherComment);

    ServerResponse addScore(Score score, User u);

    int ilabInsertUser(UserVo userVo);

    ServerResponse<Integer> accountExp();

    ServerResponse<Integer> countTotalExpTime();

    int addScoreBd(ScoreQc scoreQc);
}
